home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PNC-LC11.ZIP / chat.ppe (.txt) < prev    next >
PCBoard Programming Language Executable  |  1997-03-13  |  3KB  |  298 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.3O (Encryption type II) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     Declare  Procedure PROC001(Boolean BOOLEAN005)
  31.  
  32. ;------------------------------------------------------------------------------
  33.  
  34.     STRING001 = "@X03"
  35.     STRING002 = "@X02"
  36.     STRING007 = "1.1"
  37.     Print "@X01@POFF@"
  38.     STRING003 = TokenStr()
  39.     Tokenize STRING003
  40.     STRING003 = GetToken()
  41.     STRING004 = GetToken()
  42.     FreshLine
  43.     If ((Upper(Left(STRING004, 1)) == "S") || (Upper(STRING003) == "S")) BOOLEAN002 = 1
  44.     If (Exist(STRING003)) Then
  45.         DispFile STRING003, 1
  46.     ElseIf (Exist(PPEPath() + "CHAT.PCB")) Then
  47.         DispFile PPEPath() + "CHAT.PCB", 1
  48.     Endif
  49.     If (Exist(PPEPath() + "CHAT.CFG")) Then
  50.         FOpen 1, PPEPath() + "CHAT.CFG", 0, 3
  51.         FGet 1, STRING001
  52.         FGet 1, STRING002
  53.         FGet 1, STRING004
  54.         FGet 1, STRING004
  55.         If (Left(Upper(STRING004), 2) == "YE") BOOLEAN004 = 1
  56.         FGet 1, STRING004
  57.         FGet 1, STRING004
  58.         FClose 1
  59.         If (Left(Upper(STRING004), 2) == "ON") BOOLEAN003 = 1
  60.     Endif
  61.     PageOff
  62.     RdUNet PcbNode()
  63.     WrUNet PcbNode(), "C", UN_Name(), UN_City(), "sysopchat", 0
  64.     :LABEL001
  65.     STRING003 = ""
  66.     STRING004 = ""
  67.     While ((STRING003 == "") && (STRING004 == "")) Do
  68.         STRING003 = KInkey()
  69.         STRING004 = MInkey()
  70.     EndWhile
  71.     If (STRING003 == Chr(27)) Goto LABEL005
  72.     If (((STRING004 == Chr(27)) && (BOOLEAN004 == 1)) || ((STRING004 == Chr(3)) && (BOOLEAN004 == 1))) Goto LABEL006
  73.     If (STRING003 == Chr(9)) Then
  74.         STRING003 = ""
  75.         If (BOOLEAN001 == 0) Then
  76.             BOOLEAN001 = 1
  77.             Sound 665
  78.             Delay 2
  79.             Sound 0
  80.             Goto LABEL002
  81.         Endif
  82.         Sound 665
  83.         Delay 2
  84.         Sound 0
  85.         Delay 1
  86.         Sound 665
  87.         Delay 2
  88.         Sound 0
  89.         BOOLEAN001 = 0
  90.     Endif
  91.     :LABEL002
  92.     If (STRING003 == Chr(7)) Then
  93.         If (BOOLEAN003 == 1) Then
  94.             Sound 800
  95.             Delay 2
  96.             Sound 0
  97.         Endif
  98.         MPrint STRING003
  99.         STRING003 = ""
  100.     Endif
  101.     If (STRING004 == Chr(7)) Then
  102.         If (BOOLEAN003 == 1) Then
  103.             Sound 1000
  104.             Delay 2
  105.             Sound 0
  106.         Endif
  107.         STRING004 = ""
  108.     Endif
  109.     If (STRING003 == Chr(8)) Then
  110.         Backup 1
  111.         Print Space(1)
  112.         Backup 1
  113.         STRING005 = Left(STRING005, Len(STRING005) - 1)
  114.         STRING003 = ""
  115.     Endif
  116.     If ((STRING004 == Chr(8)) && (BOOLEAN001 == 0)) Then
  117.         Backup 1
  118.         Print Space(1)
  119.         Backup 1
  120.         STRING006 = Left(STRING006, Len(STRING006) - 1)
  121.         STRING004 = ""
  122.     Endif
  123.     If (STRING003 == Chr(13)) Then
  124.         STRING003 = ""
  125.         PrintLn "@POFF@"
  126.         STRING005 = ""
  127.     Endif
  128.     If ((STRING004 == Chr(13)) && (BOOLEAN001 == 0)) Then
  129.         STRING004 = ""
  130.         PrintLn "@POFF@"
  131.         STRING006 = ""
  132.     Endif
  133.     If ((STRING003 <> "") && (Len(STRING003) == 1)) Then
  134.         If (STRING003 == Space(1)) Then
  135.             STRING005 = ""
  136.             Goto LABEL003
  137.         Endif
  138.         STRING005 = STRING005 + STRING003
  139.         :LABEL003
  140.         If ((GetX() > 78) && (Len(STRING005) <= 77)) Then
  141.             Print STRING001, Space(1)
  142.             PROC001(1)
  143.         Endif
  144.         If ((GetX() > 78) && (Len(STRING005) >= 77)) Then
  145.             Print STRING001, Space(1)
  146.             Newline
  147.             STRING005 = ""
  148.         Endif
  149.         Print STRING001, STRING003
  150.         STRING006 = ""
  151.     Endif
  152.     If (((STRING004 <> "") && (BOOLEAN001 == 0)) && (Len(STRING004) == 1)) Then
  153.         If (STRING004 == Space(1)) Then
  154.             STRING006 = ""
  155.             Goto LABEL004
  156.         Endif
  157.         STRING006 = STRING006 + STRING004
  158.         :LABEL004
  159.         If ((GetX() > 79) && (Len(STRING006) <= 77)) PROC001(0)
  160.         If ((GetX() > 79) && (Len(STRING006) >= 77)) Then
  161.             Newline
  162.             STRING006 = ""
  163.         Endif
  164.         Print STRING002, STRING004
  165.         STRING005 = ""
  166.     Endif
  167.     Goto LABEL001
  168.     :LABEL005
  169.     FreshLine
  170.     Newline
  171.     If (Exist(PPEPath() + "CHAT.CFG")) Then
  172.         STRING004 = ReadLine(PPEPath() + "CHAT.CFG", 3)
  173.         FClose -1
  174.         If (Left(STRING004, 80) <> Space(80)) Then
  175.             DispStr STRING004
  176.             FreshLine
  177.         Endif
  178.     Endif
  179.     If (BOOLEAN002 == 1) KbdStuff Chr(27)
  180.     End
  181.     :LABEL006
  182.     FreshLine
  183.     Newline
  184.     If (Exist(PPEPath() + "CHAT.CFG")) Then
  185.         STRING004 = ReadLine(PPEPath() + "CHAT.CFG", 5)
  186.         FClose -1
  187.         If (Left(STRING004, 80) <> Space(80)) Then
  188.             DispStr STRING004
  189.             FreshLine
  190.         Endif
  191.     Endif
  192.     If (BOOLEAN002 == 1) KbdStuff Chr(27)
  193.     End
  194.  
  195. ;------------------------------------------------------------------------------
  196.  
  197.     Procedure PROC001(Boolean BOOLEAN005)
  198.  
  199.     If (BOOLEAN005 == 1) Then
  200.         Backup Len(STRING005)
  201.         Print Space(Len(STRING005))
  202.         Newline
  203.         Print STRING001, STRING005
  204.         STRING003 = ""
  205.     Else
  206.         Backup Len(STRING006)
  207.         Print Space(Len(STRING006))
  208.         Newline
  209.         Print STRING002, STRING006
  210.         STRING004 = ""
  211.     Endif
  212.  
  213.     EndProc
  214.  
  215.  
  216. ;------------------------------------------------------------------------------
  217. ;
  218. ; Usage report (before postprocessing)
  219. ;
  220. ; ■ Statements used :
  221. ;
  222. ;    2       End
  223. ;    35      Goto 
  224. ;    38      Let 
  225. ;    11      Print 
  226. ;    2       PrintLn 
  227. ;    34      If 
  228. ;    2       DispFile 
  229. ;    1       FOpen 
  230. ;    3       FClose 
  231. ;    6       FGet 
  232. ;    6       Delay 
  233. ;    6       Newline
  234. ;    1       Tokenize 
  235. ;    2       KbdStuff 
  236. ;    2       DispStr 
  237. ;    1       RdUNet 
  238. ;    1       WrUNet 
  239. ;    6       Backup 
  240. ;    5       FreshLine
  241. ;    10      Sound 
  242. ;    1       MPrint 
  243. ;    1       PageOff
  244. ;    1       EndProc
  245. ;
  246. ;
  247. ; ■ Functions used :
  248. ;
  249. ;    2       -
  250. ;    10      +
  251. ;    2       -
  252. ;    31      ==
  253. ;    4       <>
  254. ;    2       <=
  255. ;    4       >
  256. ;    2       >=
  257. ;    26      !
  258. ;    12      &&
  259. ;    2       ||
  260. ;    12      Len(
  261. ;    4       Upper()
  262. ;    7       Left()
  263. ;    10      Space()
  264. ;    12      Chr()
  265. ;    8       PPEPath()
  266. ;    2       PcbNode()
  267. ;    2       ReadLine()
  268. ;    1       UN_Name()
  269. ;    1       UN_City()
  270. ;    2       GetToken()
  271. ;    5       Exist()
  272. ;    1       TokenStr()
  273. ;    4       GetX()
  274. ;    1       KInkey()
  275. ;    1       MInkey()
  276. ;
  277. ;------------------------------------------------------------------------------
  278. ;
  279. ; Analysis flags : M
  280. ;
  281. ; M - Send text to modem only ■ 4
  282. ;     Some informations are sent only to the modem, not to the local
  283. ;     screen, this is a well known way to make stealth backdoors, Check!
  284. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  285. ;
  286. ;------------------------------------------------------------------------------
  287. ;
  288. ; Postprocessing report
  289. ;
  290. ;    0       For/Next
  291. ;    1       While/EndWhile
  292. ;    25      If/Then or If/Then/Else
  293. ;    0       Select Case
  294. ;
  295. ;------------------------------------------------------------------------------
  296. ;                 AEGiS Corp - Break the routines, code against the machines!
  297. ;------------------------------------------------------------------------------
  298.